1e644343da95ee76e1ce293a33e43c31814432c6,source/com/intellij/openapi/diff/impl/patch/PatchReader.java,PatchReader,readNextHunkContext,#,165

Before Change


      while(beforeLineIndex < beforeLines.size() && afterLineIndex < afterLines.size()) {
        String beforeLine = beforeLines.get(beforeLineIndex);
        String afterLine = afterLines.get(afterLineIndex);
        if (beforeLine.startsWith(" ") && afterLine.startsWith(" ")) {
          addContextDiffLine(hunk, beforeLine, PatchLine.Type.CONTEXT);
          beforeLineIndex++;
          afterLineIndex++;
        }
        else if (beforeLine.startsWith("-")) {
          addContextDiffLine(hunk, beforeLine, PatchLine.Type.REMOVE);
          beforeLineIndex++;
        }
        else if (afterLine.startsWith("+")) {

After Change



    int beforeLineIndex = 0;
    int afterLineIndex = 0;
    PatchLine lastBeforePatchLine = null;
    PatchLine lastAfterPatchLine = null;
    if (beforeLines.size() == 0) {
      for(String line: afterLines) {
        hunk.addLine(parsePatchLine(line, 2));
      }
    }
    else if (afterLines.size() == 0) {
      for(String line: beforeLines) {
        hunk.addLine(parsePatchLine(line, 2));
      }
    }
    else {
      while(beforeLineIndex < beforeLines.size() || afterLineIndex < afterLines.size()) {
        String beforeLine = beforeLineIndex >= beforeLines.size() ? null : beforeLines.get(beforeLineIndex);
        String afterLine = afterLineIndex >= afterLines.size() ? null : afterLines.get(afterLineIndex);
        if (startsWith(beforeLine, NO_NEWLINE_SIGNATURE) && lastBeforePatchLine != null) {
          lastBeforePatchLine.setSuppressNewLine(true);
          beforeLineIndex++;
        }
        else if (startsWith(afterLine, NO_NEWLINE_SIGNATURE) && lastAfterPatchLine != null) {
          lastAfterPatchLine.setSuppressNewLine(true);
          afterLineIndex++;
        }
        else if (startsWith(beforeLine, " ") && startsWith(afterLine, " ")) {
          addContextDiffLine(hunk, beforeLine, PatchLine.Type.CONTEXT);
          beforeLineIndex++;
          afterLineIndex++;
        }
        else if (startsWith(beforeLine, "-")) {
          lastBeforePatchLine = addContextDiffLine(hunk, beforeLine, PatchLine.Type.REMOVE);
          beforeLineIndex++;
        }
        else if (startsWith(afterLine, "+")) {